Several leading technology organizations are investing in building technologies that sell “software-as-a-service”. Such services provide access to shared storage (e.g., database systems) and/or computing resources to clients or subscribers. Within multi-tier e-commerce systems, combinations of different types of resources may be allocated to subscribers and/or their applications, such as whole physical or virtual machines, CPUs, memory, network bandwidth, or I/O (input/output) capacity.
One of the many benefits of using the software-as-a-service approach is that providing the desired levels of availability, data durability and scalability becomes the responsibility of the service operator. Clients of the services may simply decide what levels of availability, durability and performance they wish to pay for, and leave the implementation details to the services. The service operators may consequently establish numerous data centers, often geographically distributed across different cities, states, or even countries, and populate the data centers with computing, networking, and storage infrastructure based on expectations of client usage levels for the various services. The specific resources used for a given client may be selected from several different data centers, for example, to achieve desired levels of fault tolerance and data durability.
Some service operators may implement a provisioned-throughput model for a high-performance distributed database service, in which the resources allocated for a particular data object such as a table may be selected so that a targeted level of throughput can be guaranteed for client I/O operations. Table contents may be partitioned across several different nodes, for example, to enable larger numbers of read and write requests from clients to be handled than would have been possible if the table was stored at a single node. In such performance-constrained environments, it may be problematic to add workload associated with secondary tasks like index management, backup and restore to the service nodes responsible for fulfilling client requests.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to. When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof